#include <57header.h>

// 表示: 进程池中进程的状态
enum {
    BUSY,
    FREE
};

// 维护一个子进程的信息
typedef struct proc_status_s {
    pid_t pid;
    int status;
    int local_socket_fd;

} proc_status_t;

// 按照个数去初始化进程池
int initPool(proc_status_t *list, int num);

// 初始化socket
int initSocket(int *socket_fd, char *ip, char *port);

// 添加epoll监听
int addEpoll(int epoll_fd, int fd);

// 定义一个正在工作的子进程的函数
int sonProcMain(int local_socket);


// 把主进程监听到的net_fd, 选择一个子进程处理
int toSon(int net_fd, proc_status_t *list, int num);

// 本地socket发送文件相关信息
int localNetFdSend(int net_fd, int local_socket_fd);
// 本地socket获得socket对象信息
int localNetFdRecv(int *net_fd, int local_socket_fd);

// 文件传输函数
int sendFile(int net_fd);
